package com.lanou3g.code0411;

import javax.tools.ToolProvider;

/**
 * Created by dllo on 18/4/11.
 */


/*
* 泛型:
*     语法:<>
*     可以用在类上,可以用在方法上
*     类: 在类名后使用<任意字母>叫做声明泛型
*         任意字母:命名规范同类名,即首字母大写,并且驼峰结构,特别的,尽量短一些,可以使用一个字母,通常会使用T,
*         T是Type的首字母
*
*      如果泛型类需要使用多个类型,使用<A,B >这种形式
*
*
* 泛型会出现在:参数/返回值中
* 泛型机制生效时间是:编译期,在运行时所有泛型都会被删除,即就是来帮助我们"写"代码的
*
* */
public class Foo<T,A> { // 可以用多个类型 <T ,A,B,C>
    //在类上声明的泛型,可以在这个类中使用,即,在这个类中,T就好像真的写了一个类一样
    private T t;
    private A a;


    public void fun(){

       // T a = new T();  //不可以这样写.  不能保证T有无参的构造方法
        t.toString();  //
    }

    public void fun(T t,A a){

    }

    public A getA() {
        return a;
    }

    public void setA(A a) {
        this.a = a;
    }

    public T getT() {
        return t;
    }
    public void setT(T t) {
        this.t = t;
    }

}
